<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>List Picker test</title>
<style>
body {
    background-color: #eeffff;
}
iframe {
    z-index: 2147483647;
    width: 100px;
    height: 100px;
    border: 0;
    overflow: hidden;
}
</style>
</head>
<body>

<p>This is a testbed for list picker.</p>

<div>
<select id="menu">
    <option value="0">foo</option>
    <option value="1">bar</option>
    <option value="2">bar</option>
    <optgroup label=bar>
        <option value="4">bar</option>
        <option value="5">bar</option>
    </optgroup>
    <option value="6">bar</option>
</select>
<iframe srcdoc="<!DOCTYPE html>"></iframe>

<ol id="console" style="font-family:monospace;">
</ol>

<script>
var pickerArguments = {
    selectedIndex: 0,
    children: [{
            type: "option",
            label: "foo",
            title: "",
            value: 0,
            ariaLabel: "",
            disabled: false,
            style: {
                color: "black",
                backgroundColor: "transparent",
                fontSize: "11px",
                fontWeight: "400",
                fontFamily: ["sans-serif"],
                visibility: "visible",
                display: "block",
                direction: "ltr",
                unicodeBidi: "normal"
            }
        }, {
            type: "option",
            label: "bar",
            title: "",
            value: 1,
            ariaLabel: "",
            disabled: false,
            style: {
                color: "black",
                backgroundColor: "transparent",
                fontSize: "11px",
                fontWeight: "400",
                fontFamily: ["sans-serif"],
                visibility: "visible",
                display: "block",
                direction: "ltr",
                unicodeBidi: "normal"
            }
        }, {
            type: "separator",
            label: "bar",
            title: "",
            value: 2,
            ariaLabel: "",
            disabled: false,
            style: {
                color: "black",
                backgroundColor: "transparent",
                fontSize: "11px",
                fontWeight: "400",
                fontFamily: ["sans-serif"],
                visibility: "visible",
                display: "block",
                direction: "ltr",
                unicodeBidi: "normal"
            }
        }, {
            type: "option",
            label: "bar",
            title: "",
            value: 2,
            ariaLabel: "",
            disabled: false,
            style: {
                color: "black",
                backgroundColor: "transparent",
                fontSize: "11px",
                fontWeight: "400",
                fontFamily: ["sans-serif"],
                visibility: "visible",
                display: "block",
                direction: "ltr",
                unicodeBidi: "normal"
            }
        }, {
        type: "optgroup",
        label: "foo",
        title: "",
        ariaLabel: "",
        disabled: false,
        children: [{
            type: "option",
            label: "bar",
            title: "",
            value: 3,
            ariaLabel: "",
            disabled: false,
            style: {
                color: "black",
                backgroundColor: "transparent",
                fontSize: "11px",
                fontWeight: "700",
                fontFamily: ["sans-serif"],
                visibility: "visible",
                display: "block",
                direction: "ltr",
                unicodeBidi: "normal"
            }
        },
        {
            type: "option",
            label: "bar",
            title: "",
            value: 4,
            ariaLabel: "",
            disabled: false,
            style: {
                color: "black",
                backgroundColor: "transparent",
                fontSize: "11px",
                fontWeight: "400",
                fontFamily: ["sans-serif"],
                visibility: "visible",
                display: "block",
                direction: "ltr",
                unicodeBidi: "normal"
            }
        }],
        style: {
            color: "black",
            backgroundColor: "transparent",
            fontSize: "11px",
            fontWeight: "400",
            fontFamily: ["sans-serif"],
            visibility: "visible",
            display: "block",
            direction: "ltr",
            unicodeBidi: "normal"
        }
    }, {
        type: "option",
        label: "bar",
        title: "",
        value: 5,
        ariaLabel: "",
        disabled: false,
        style: {
            color: "black",
            backgroundColor: "transparent",
            fontSize: "11px",
            fontWeight: "400",
            fontFamily: ["sans-serif"],
            visibility: "visible",
            display: "block",
            direction: "ltr",
            unicodeBidi: "normal"
        }
    }],
    anchorRectInScreen: {
        x: 1332,
        y: 356,
        width: 64,
        height: 18,
    },
};

function openListPicker(args) {
    var frame = document.getElementsByTagName('iframe')[0];
    var doc = frame.contentDocument;
    doc.documentElement.innerHTML = '<!DOCTYPE html><head></head><body><div id=main>Loading...</div></body>';
    var commonCssLink = doc.createElement('link');
    commonCssLink.rel = 'stylesheet';
    commonCssLink.href = '../../Source/core/html/forms/resources/pickerCommon.css?' + (new Date()).getTime();
    doc.head.appendChild(commonCssLink);
    var listPickerCssLink = doc.createElement('link');
    listPickerCssLink.rel = 'stylesheet';
    listPickerCssLink.href = '../../Source/core/html/forms/resources/listPicker.css?' + (new Date()).getTime();
    doc.head.appendChild(listPickerCssLink);
    var commonJsScript = doc.createElement('script');
    commonJsScript.src = '../../Source/core/html/forms/resources/pickerCommon.js?' + (new Date()).getTime();
    doc.body.appendChild(commonJsScript);
    var listPickerJsScript = doc.createElement('script');
    listPickerJsScript.src = '../../Source/core/html/forms/resources/listPicker.js?' + (new Date()).getTime();
    doc.body.appendChild(listPickerJsScript);

    var pagePopupController = {
        setValue: function(stringValue) {
            window.log('string="' + stringValue + '"');
            if (numValue == 0)
                window.document.getElementById('menu').value = stringValue;
        },
        setValueAndClosePopup: function(numValue, stringValue) {
            window.log('number=' + numValue + ', string="' + stringValue + '"');
            if (numValue == 0)
                window.document.getElementById('menu').value = stringValue;
        },
    }

    setTimeout(function() {
        frame.contentWindow.postMessage(JSON.stringify(args), "*");
        frame.contentWindow.pagePopupController = pagePopupController;
    }, 100);
}

function log(str) {
    var entry = document.createElement('li');
    entry.innerText = str;
    document.getElementById('console').appendChild(entry);
}

document.getElementsByTagName('iframe')[0].onload = function () {
    openListPicker(pickerArguments);
}
</script>
</body>
</html>
